#include <stdio.h>
#include "prime_enum.h"

/*
 * 判断一个整数是否为素数
 * 参数：
 *   n - 要判断的整数
 * 返回值：
 *   如果是素数返回 1，否则返回 0
 */
int is_prime(int n) 
{
    if (n < 2) return 0;

    /* 从 2 到 sqrt(n) 判断是否能整除 */
    for (int i = 2; i * i <= n; ++i) 
    {
        if (n % i == 0)
            return 0;
    }

    return 1;
}

/*
 * 参数：
 *   num1 - 用户输入的下限值
 *   num2 - 用户输入的上限值
 */
int count_primes(int num1, int num2) 
{
    int count = 0;
    if (num1 <= 0 || num2 <= 0) 
    {
        printf("Error! Please enter two numbers greater than zero\n");
        return -1;
    }
    else if (num1 == 1 && num2 == 1)
    {
    	return 0;
    }
    else if (num1 >= num2)
    {
    	printf("Error! num1 should be greater than num2\n");
    }


    

    for (int i = num1; i <= num2; ++i) 
    {
        if (is_prime(i)) 
        {
            count++;
        }
    }
    return count;
}
